﻿@*
//------------------------------------------------------------------------------
//  此代码版权声明为全文件覆盖，如有原作者特别声明，会在下方手动补充
//  此代码版权（除特别声明外的代码）归作者本人Diego所有
//  源代码使用协议遵循本仓库的开源协议及附加协议
//  Gitee源代码仓库：https://gitee.com/diego2098/ThingsGateway
//  Github源代码仓库：https://github.com/kimdiego2098/ThingsGateway
//  使用文档：https://diego2098.gitee.io/thingsgateway-docs/
//  QQ群：605534569
//------------------------------------------------------------------------------
*@

@page "/admin/spa"
@using System.Linq.Expressions;
@using BlazorComponent;
@using Masa.Blazor.Presets;
@using Microsoft.AspNetCore.Authorization;
@using ThingsGateway.Admin.Application;
 
@namespace ThingsGateway.Admin.Blazor
@attribute [Authorize]
@inherits BaseComponentBase
@inject UserResoures UserResoures
@layout MainLayout
<AppDataTable @ref="_datatable" TItem="SysResource" SearchItem="SpaPageInput" 
              AddItem="SpaAddInput" EditItem="SpaEditInput"
              SearchModel="@_search"
              QueryCallAsync="QueryCallAsync" AddCallAsync="AddCallAsync"
              EditCallAsync="EditCallAsync" DeleteCallAsync="DeleteCallAsync"
                IsShowQueryButton IsShowSearchKey IsShowDetailButton
              IsShowAddButton=@UserResoures.IsHasButtonWithRole("sysspaadd")
              IsShowDeleteButton=@UserResoures.IsHasButtonWithRole("sysspadelete")
              IsShowEditButton=@UserResoures.IsHasButtonWithRole("sysspaedit")>

    <AddTemplate>
        @GetRenderFragment(context)
    </AddTemplate>

    <EditTemplate>
        @GetRenderFragment(context)
    </EditTemplate>


    <ItemColTemplate>
        @switch (context.Header.Value)
        {
            case nameof(context.Item.Icon):
                <MIcon>
                    @context.Value
                </MIcon>
                break;
            default:
                @if (context.Header.CellClass?.Contains("text-truncate") == true)
                {
                    <span title=@context.Value>
                        @context.Value
                    </span>
                }
                else
                {
                    @context.Value
                }
                break;
        }

    </ItemColTemplate>
</AppDataTable>




@code {
    RenderFragment GetRenderFragment(SpaAddInput context)
    {
        RenderFragment renderFragment =
    @<div>

        <MSubheader Class="mt-4 font-weight-black"> @(context.Description(x => x.Title))  </MSubheader>
        <MTextField Dense Outlined HideDetails="@("auto")" @bind-Value=@context.Title />

        <MSubheader Class="mt-4 font-weight-black">    @(context.Description(x => x.Component))  </MSubheader>
        <MTextField Dense Outlined HideDetails="@("auto")" @bind-Value=@context.Component />


        <MSubheader Class="mt-4 font-weight-black">    @(context.Description(x => x.Icon))  </MSubheader>
        <MTextField Dense Outlined HideDetails="@("auto")" @bind-Value=@context.Icon />

        <MSubheader Class="mt-4 mb-5 font-weight-black">@(context.Description(x => x.SortCode)) </MSubheader>
        <MSlider @bind-Value=@context.SortCode Class="mb-5" TValue=int ThumbLabel="@("always")" Dense />



    </div>

    ;
        return renderFragment;
    }

                    }